package com.cdtye.itps.cms.mapper.defect;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cdtye.itps.cms.dao.defect.entity.JcwProblemDefectInfo;
import com.cdtye.itps.cms.dao.defect.vo.JcwProblemDefectInfoVo;
import com.cdtye.itps.cms.dao.result.BasicDefectInfoResVo;
import com.cdtye.itps.cms.dao.result.DefectStatisticVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface JcwProblemDefectInfoMapper extends BaseMapper<JcwProblemDefectInfo> {
    IPage<Map<String,Object>> pageList(IPage page, @Param("vo") JcwProblemDefectInfoVo vo);

    Map<String,Object> getDefectInfoById(@Param("id") String id);

    /**
     * 首页-缺陷基础信息
     */
    BasicDefectInfoResVo defectStatisticsIndex(@Param("vo") JcwProblemDefectInfoVo query);

    /**
     * 统计报表-缺陷单位分布统计页面-表格-供电段统计
     */
    List<DefectStatisticVo> getDefectSectionStatistics(@Param("vo") JcwProblemDefectInfoVo query );

    /**
     * 统计报表-缺陷单位分布统计页面-表格-供电段下的供电车间统计
     */
    List<DefectStatisticVo> getDefectWorkShopStatistics(@Param("vo") JcwProblemDefectInfoVo query );

    /**
     * 统计报表-缺陷季度分布统计页面-表格-供电段统计
     */
    List<DefectStatisticVo> getDefectSectionQuarterStatistics(@Param("vo") JcwProblemDefectInfoVo query );

    /**
     * 统计报表-缺陷季度分布统计页面-表格-供电段下供电车间统计
     */
    List<DefectStatisticVo> getDefectWorkShopQuarterStatistics(@Param("vo") JcwProblemDefectInfoVo query );

    /**
     * 统计报表-缺陷季度分布统计页面-表格-供电段下供电车间下的线路统计
     */
    List<DefectStatisticVo> getDefectLineQuarterStatistics(@Param("vo") JcwProblemDefectInfoVo query );

    /**
     * 统计报表-缺陷月份分布统计页面-表格-供电段统计
     */
    List<DefectStatisticVo> getDefectSectionMonthStatistics(@Param("vo") JcwProblemDefectInfoVo query );

    /**
     * 统计报表-缺陷月份分布统计页面-表格-供电段下供电车间统计
     */
    List<DefectStatisticVo> getDefectWorkShopMonthStatistics(@Param("vo") JcwProblemDefectInfoVo query );

    /**
     * 统计报表-缺陷月份分布统计页面-表格-供电段下供电车间下的线路统计
     */
    List<DefectStatisticVo> getDefectLineMonthStatistics(@Param("vo") JcwProblemDefectInfoVo query );

    /**
     * 统计报表-缺陷部位分布统计页面-表格
     */
    List<DefectStatisticVo> getDefectPositionStatistic(@Param("vo") JcwProblemDefectInfoVo query);

    /**
     * 统计报表-缺陷地域分布统计页面-表格-线路统计
     */
    List<DefectStatisticVo> getDefectLineStatistics(@Param("vo") JcwProblemDefectInfoVo query);

    /**
     * 统计报表-缺陷地域分布统计页面-表格-线路下的站统计
     */
    List<DefectStatisticVo> getDefectSiteStatistics(@Param("vo") JcwProblemDefectInfoVo query);

    /**
     * 统计报表-缺陷类型分布统计页面-表格
     */
    List<DefectStatisticVo> getDefectTypeStatistic(@Param("vo") JcwProblemDefectInfoVo query);

    /**
     *首页-超期预警情况-缺陷
     */
    Map<String,Object> getDefectOverWarn(@Param("vo")JcwProblemDefectInfoVo  vo);
    /**
     * 首页-缺陷基础信息-缺陷类型top10
     */
    List<Map<String,Object>> getDefectTypeTop10(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     * 首页-缺陷基础信息-缺陷6C类型分布
     */
    List<Map<String,Object>> getDefectType_6C(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     * 首页-缺陷基础信息-缺陷设备分布TOP5
     */
    List<Map<String,Object>> getDefectDeviceTop5(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     * 首页-缺陷基础信息-缺陷分布
     */
    List<Map<String,Object>> getDefect(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     * 首页-缺陷单位分布-缺陷周期修
     */
    List<Map<String,Object>> getDefectCycle(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     * 首页-缺陷单位分布-未处理的缺陷类型分布
     */
    List<Map<String,Object>> getUntreatedDefectType(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     * 首页-缺陷单位分布-未处理缺陷分布
     */
    List<Map<String,Object>> getUntreatedDefect(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     *缺陷管理-缺陷信息-统计缺陷总数/未销号/已销号/超期未处理的个数
     */
    Map<String, Object> countData(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     * 缺陷趋势分析-缺陷信息-总数月份统计
     */
    List<Map<String,Object>> defectAndTimeRelation(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     * 缺陷趋势分析-缺陷信息-按6c统计每月的数据
     */
    List<Map<String,Object>> defectAndTimeRelationByCType(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     * 缺陷多发支柱专项分析-缺陷多方支柱top30
     */
    List<Map<String, Object>> getDefectPillarTop30(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     *缺陷多发支柱专项分析-缺陷详情
     */
    List<JcwProblemDefectInfo> getDefectPillarDetail(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     *缺陷多发支柱专项分析-缺陷类型分布
     */
    List<Map> getDefectTypeEchart(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     *缺陷多发支柱专项分析-缺陷等级分布
     */
    List<Map> getDefectLevelEchart(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     *缺陷多发支柱专项分析-6C类型缺陷分布
     */
    List<Map> getDefectEchart(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     * 根据支柱号id获取缺陷信息
     */
    IPage<Map<String,Object>> getDefectInfoByPillarId(IPage page,@Param("vo")JcwProblemDefectInfoVo vo);

    /**
     *分析管理-综合分析-缺陷线路年度数据
     */
    List<Map> defectLineYearAnalyse(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     *分析管理-综合分析-区站缺陷发生排行
     */
    List<Map> siteDefectTop(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     *分析管理-综合分析-区站名查询最近三年的缺陷数据
     */
    List<Map> siteDefectYear(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     *分析管理-综合分析-鸟巢与危树统计
     */
    List<Map> defectsSpecialAnalysis(@Param("vo") JcwProblemDefectInfoVo vo);

    /**
     * 缺陷类型年度分析
     */
    List<Map<String,Object>> defectTypeYearAnalyse(@Param("vo")JcwProblemDefectInfoVo vo);

    /**
     *分析管理-缺陷与年度相关性分析-缺陷类型百分比
     */
    List<Map> defectTypePercent(@Param("vo")JcwProblemDefectInfoVo vo);

    /**
     *缺陷类型占比top10
     */
    List<Map<String,Object>> getDefectTypeNameTop10(@Param("vo")JcwProblemDefectInfoVo vo);

    IPage<JcwProblemDefectInfo> listPageJdgm(IPage page, @Param("vo") JcwProblemDefectInfoVo vo);
}
